home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / faq / inn-faq / part2 < prev    next >
Encoding:
Text File  |  1995-07-25  |  59.0 KB  |  1,526 lines

  1. Subject: INN FAQ Part 2/4: Debugging Guide & Tutorial
  2. Newsgroups: news.software.nntp,news.software.b,news.answers
  3. From: tal@Warren.MENTORG.COM (Tom Limoncelli)
  4. Date: 20 Aug 1994 04:00:18 -0000
  5.  
  6. Posted-By: auto-faq 2.4
  7. Archive-name: inn-faq/part2
  8.  
  9. Last Changed: $Id: FAQ-inn.2,v 1.41 1994/07/25 14:46:29 tal Exp $
  10.  
  11.                   Part 2 of 4
  12.  
  13. INN FAQ Part 1/4: General Information
  14. INN FAQ Part 2/4: Debugging Guide & Tutorial
  15.                      Reasons why INN isn't starting
  16.                      The debugging tutorial
  17.                      Other error messages and what they mean
  18. INN FAQ Part 3/4: Operational and Misc. Questions
  19. INN FAQ Part 4/4: Appendix A: Norman's install guide
  20.  
  21.  
  22. ------------------------------
  23.  
  24. Subject:  Table Of Contents for Part 2/4
  25.  
  26. =====================================================================
  27.      TABLE OF CONTENTS FOR PART 2/4:  Debugging Guide & Tutorial
  28. =====================================================================
  29.  
  30. REASONS WHY INN ISN'T STARTING:
  31.     Why does innd just exit right away with no message?
  32.     syslog message: ME internal no to group
  33.     syslog message: ME internal no control and/or junk group
  34.     syslog message: Can't setup communication (bind failure)
  35.     syslog message: ME bad_newsfeeds no feeding sites
  36.     syslog message: ME cant GetConfigValue
  37.     syslog message: ME cant accept RCreader
  38. THE DEBUGGING TUTORIAL:
  39.     Should I read the Install.ms file in its entirety
  40.         before reading this document?
  41.     Terminology used in the rest of this document.
  42.     How does it all fit together?
  43.     What should I monitor as I debug INN problems?
  44.     My innd won't start!
  45.     Connecting to a TCP/IP server.
  46.     Make sure that "feeders" can connect.
  47.     Make sure that "readers" can connect.
  48.     Make sure that clients can post.
  49.     "client" doesn't have the software needed to post.
  50.     Introduction to the "newsfeeds" file
  51.     The ME line in the newsfeeds file.
  52.     How does the "ME" line interact with the other lines?
  53.     Cookbook example of an outgoing NNTP feed.
  54.     Cookbook example of an outgoing UUCP feed.
  55.     Cookbook example of an outgoing UUCP-over-TCP feed.
  56.     Testing an outgoing feed (your "newsfeeds" configuration).
  57.     Other cron jobs.
  58.     Cookbook example setting up NOV ("overchan").
  59.     How do I use nntplink with INN?
  60.     How do I use newsgate with INN?
  61. OTHER ERROR MESSAGES AND WHAT THEY MEAN:
  62.     ld.so: Undefined symbol: _dbzwritethrough
  63.     Why does my innd often die with the message "Can't sync history..."
  64.     syslog message: ME cant sendto CCreader bytes 4 No such file
  65.         or directory.
  66.     syslog: cant read Connection reset by peer
  67.     inews says "bad message-id"
  68.     Why do all these "readclose" messages show up in my syslog?
  69.     "File exists writing symlinking article file -- throttling"
  70.     "cant fopen <newsgroup>/.thread No such file or directory"
  71.     news.daily reports: "Expire had problems removing articles"
  72.     syslog: ME cant nonblock 15 Operation not supported.
  73.     innd: ME cant update_active control
  74.     syslog message: innxmit[1234]: max connect failed Error 0
  75.     Can't open "/usr/local/news/shlock955", Permission denied
  76.  
  77.  
  78. =====================================================================
  79.                    REASONS WHY INN ISN'T STARTING
  80. =====================================================================
  81.  
  82. ------------------------------
  83.  
  84. Subject:  Why does innd just exit right away with no message?
  85.  
  86. First, fix your syslog: innd always logs a message before it exits.  (The
  87. INN distribution includes a version of the current UCB syslog, along with
  88. instructions on how to install it.  Ultrix systems might want to look at
  89. the syslog that is available on gatekeeper.dec.com) Second, the most
  90. common cause of this is that you do not have a history file (or no history
  91. database).  You will see a message like this:
  92.     ME cant dbminit /usr/local/news/history No such file or directory
  93. This means that you do not have a history database.  You might want to run
  94. the BUILD script in your INN source tree or read about makehistory in
  95. doc/news-recovery.8; if you do the latter, make sure to rename the
  96. database files. 
  97.  
  98.  
  99. ------------------------------
  100.  
  101. Subject:  syslog message: inndstart: inndstart cant bind Address already in use
  102.  
  103. >I try to start INN but got this error in my syslog file:
  104. >       inndstart: inndstart cant bind Address already in use
  105. >Can anyone give me a hint on how to fix it ?
  106.  
  107. Something else is already using port 119.  Comment out the line in
  108. /etc/inetd.conf for port 119 and "kill -HUP" the inetd program (which
  109. makes it re-read the configuration file).
  110.  
  111. Remember, there are two ways for programs to take control over an
  112. incoming port.  (1) the program runs and grabs the port (which has to
  113. be done as root) and then handles all incoming connections, or (2) the
  114. program is listed in /etc/inetd.conf and inetd grabs the port and hands
  115. off any incoming connections to the program specified in
  116. /etc/inetd.conf (i.e. one process gets started for every incoming
  117. connection.)
  118.  
  119. If you do (1) and (2) at the same time, the inetd will grab the port
  120. and then anyone else that grabs the port will get an "Address already
  121. in use" error.
  122.  
  123. INN's "innd" program is type (1).  C News+NNTP uses something that is
  124. type (2).
  125.  
  126. Most people that get this error ran C News+NNTP a long time ago and
  127. forgot to remove the line from their /etc/inetd.conf file.
  128.  
  129.  
  130. ------------------------------
  131.  
  132. Subject:  syslog message: ME internal no to group
  133.  
  134. Nelson Minar <nelson@reed.edu> discovered the hard way that:
  135.  
  136. If you set MERGE_TO_GROUPS to "DO",
  137.  
  138. You have to have a "to" group listed in your "active" file or you will
  139. get the above syslog message and innd will not start.
  140.  
  141.  
  142. ------------------------------
  143.  
  144. Subject:  syslog message: ME internal no control and/or junk group
  145.  
  146. You must have a newsgroup named "control" and a newsgroup named
  147. "junk" for innd to start.
  148.  
  149.  
  150. ------------------------------
  151.  
  152. Subject:  syslog message: Can't setup communication (bind failure)
  153.  
  154. The message "Can't setup communication (bind failure) Permission denied"
  155. means that the permissions on your _PATH_NEWSCONTROL directory
  156. are wrong.  You might want to delete the directory and "make install"
  157. to create it again.
  158.  
  159.  
  160. ------------------------------
  161.  
  162. Subject:  syslog message: ME bad_newsfeeds no feeding sites
  163.  
  164. (Rich Salz replies:) The syslog message is telling you that you are not
  165. feeding news to any sites.  You have to have at least one feed.  (You
  166. may consider this to be a bug, it's just that I'm too lazy to make
  167. everything work right if you don't have any newsfeeds.)
  168.  
  169. Until you go into production and start feeding sites, add a line like this:
  170.         dummy-feed:!*::
  171.  
  172.  
  173. ------------------------------
  174.  
  175. Subject:  syslog message: ME cant GetConfigValue
  176.  
  177. Jan 12 17:38:06 galaxy innd: ME cant GetConfigValue pathhost Error 0
  178.                                                     ^^^^^^^^
  179.  
  180. This means you don't have "pathhost:" in your inn.conf.
  181.  
  182. GetConfigValue is the routine that gets data out of the inn.conf file.
  183. If you get the above error, it means you don't have a particular value
  184. in your inn.conf.  Run "inncheck -v" usually will tell you what you
  185. need to do.
  186.  
  187.  
  188. ------------------------------
  189.  
  190. Subject:  syslog message: ME cant accept RCreader
  191.  
  192. Situation:  INN 1.4sec on ICS2.0 or Interactive Unix System V Release
  193. 3.2 or one of the many SVR4 Unix's.  You get syslog messages like:
  194.  
  195. Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader No more
  196. Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader Protocol error
  197. May  7 12:05:07 salyko.cube.net innd: ME cant accept RCreader Protocol error
  198.  
  199. when you connect to innd from a remote machine, but not from the
  200. local host.
  201.  
  202. Problem:  Well, that's just another bug in the SVR4 networking code.
  203.  
  204. munonye@ifns.de (Chris Munonye) reports that this patch fixed the
  205. problem:
  206.  
  207. *** RCS/rc.c     Sun Jul 18 15:02:50 1993
  208. --- rc.c Sun Jul 18 15:04:35 1993
  209. ***************
  210. *** 173,178 ****
  211. --- 173,181 ----
  212.  
  213.       /* Get the connection. */
  214.       size = sizeof remote;
  215. +     if (SetNonBlocking(cp->fd, FALSE) < 0)
  216. +        syslog(L_ERROR, "%s cant un-nonblock %d in RCreader(errno %d) %m
  217. : syslog entry:
  218. +               LogName, fd, errno);
  219.       if ((fd = accept(cp->fd, (struct sockaddr *)&remote, &size)) < 0) {
  220.          syslog(L_ERROR, "%s cant accept RCreader %m", LogName);tocol err
  221.          return;
  222.  
  223.  
  224. =====================================================================
  225.                        THE DEBUGGING TUTORIAL
  226.                 (or, What do I do after Install.ms?)
  227. =====================================================================
  228.  
  229.  
  230. ------------------------------
  231.  
  232. Subject:  Should I read the Install.ms file in its entirety before reading this document?
  233.  
  234. YES!  Install.ms tells you how to compile and install the software.
  235. This document walks you through debugging the *configuration* of the
  236. software once it is installed.
  237.  
  238. This document takes you from where install.ms leaves off, gives you a
  239. quick overview of how all the pieces fit together, and then takes you
  240. through specific debugging tasks.
  241.  
  242. Debugging INN problems is often difficult because one needs to be an
  243. experienced netnews person to do it well.  You can only get experience
  244. by having a properly running system.  This is a catch-22.  This
  245. tutorial attempts to take you through the basics.  The rest you'll
  246. figure out.
  247.  
  248. Newsgroups you should know exist:
  249. news.software.nntp  -- INN questions go here.
  250. news.software.b     -- Discussions about any of the many software
  251.     packages that support the "B news" format (i.e. INN, C news,
  252.     ANU-NEWS, etc.)
  253.  
  254. This document also takes you through the process of verifying that your
  255. system is properly configured.  When you are done, you should:
  256.  
  257. 1.  be sure that when feeders connect they are treated as feeders.
  258.  
  259. 2.  be sure that when clients connect they are treated as clients.
  260.  
  261. 3.  be sure that posting works.
  262.  
  263. 4.  be sure that your out-bound feeds are properly configured.
  264.  
  265.  
  266. ------------------------------
  267.  
  268. Subject:  Terminology used in the rest of this document.
  269.  
  270. We will pretend that your machine is named "nntphost" or
  271. "nntphost.do.main" and that there is a client named "client" or
  272. "client.do.main".
  273.  
  274. Some machines connect to you to try to feed you new articles.  We'll
  275. call these machines "feeders".  Some machines try to connect to you to
  276. read and/or post articles.  We'll call these machines "readers".
  277.  
  278.  
  279. ------------------------------
  280.  
  281. Subject:  How does it all fit together?
  282.  
  283. Here is a fantastic overview of the workings of INN.
  284.  
  285. From: Ken Hornstein <kenh@leps5.phys.psu.edu>
  286.  
  287. I discovered that the biggest problem I had with INN was understanding how
  288. everything fits together (since I had no experience with B or C news).
  289. Here's a (hopefully) simple description of how everything fits
  290. together:
  291.  
  292. After running rc.news (as "root"), you should have the "innd" daemon
  293. running ("ps" will show the process to be owned by "news").  This is
  294. the Master Daemon.  It handles incoming connections, stores the
  295. articles on your disk, but does _not_ send any articles out itself.  It
  296. directs other programs to do that.  Exactly where articles are sent and
  297. how they are sent is determined by the "newsfeeds" file.  Setting up
  298. your newsfeeds file will be the hardest part of configuring INN.  Here
  299. are some example entries from my newsfeeds file:
  300.  
  301. ra/ra.nrl.navy.mil\
  302.         :*,!psu.*/!psu\
  303.         :Tf,Wnm:
  304.  
  305. Looks complicated?  It isn't.  Here's what it means:
  306.  
  307. "ra" is the name of the feed.  "/ra.nrl.navy.mil" is an alias for ra.
  308. This is important because INN uses the "Path" header to insure the
  309. articles are not sent to sites where they have already been.  Thus, any
  310. article that has "ra" or "ra.nrl.navy.mil" in the Path header will NOT
  311. be sent to this site.  We know that no other site inserts "ra.nrl.navy.mil"
  312. because it is a FQDN (Fully Qualified Domain Name).  We know that no
  313. other site inserts "ra" because it is registered in the UUCP Maps.
  314. (Ok, "ra" isn't registered so I'm just taking a small gamble.)
  315.  
  316. The second line tells what articles will be sent out to this site.
  317. "*,!psu.*" means that articles for (all newsgroups minus those that
  318. match "psu.*") will be sent to ra.  The details of the pattern matching
  319. is found in the wildmat(3) man page.  The "/!psu" means that articles
  320. with a "Distribution" header of psu will also not be sent to ra.
  321.  
  322. The last field specifies exactly what _kind_ of feeds.  "Tf" means this
  323. is a file feed.  Unless you have unusual requirements, all of your
  324. feeds will be file feeds.  "Wnm" means that the relative path name and
  325. the Message-ID of the article will be written to this file.  By
  326. default, this file is called the same name as your feed file, and is in
  327. your out.going directory.  So on my system, every article destined to
  328. ra will have its filename and Message-ID written to the file
  329. "/var/spool/news/out.going/ra".
  330.  
  331. So how do the articles actually GET to ra?  You run a program that
  332. reads the feeds file and transmits the article.  Two such programs are
  333. included with INN -- "send-nntp" and "nntpsend".  My personal
  334. preference is for nntpsend.  If you are going to use nntpsend, you will
  335. need to add a similar line to your nntpsend.ctl file:
  336.  
  337. ra:ra.nrl.navy.mil
  338.  
  339. This tells nntpsend that articles in the feed file "ra" should be sent
  340. to the site "ra.nrl.navy.mil".  I run nntpsend out of cron every 10
  341. minutes with this line (in /usr/lib/crontab):
  342.  
  343. 0,10,20,30,40,50 * * * * /bin/su news -c '/usr/local/news/bin/nntpsend'
  344.  
  345. This is under Ultrix.  A sane cron would let you specify the userid to
  346. run programs under.
  347.  
  348. UUCP feeds work similarly and are described in a different section.
  349.  
  350. As each article comes in (note that hosts feeding you _must_ be listed
  351. in the hosts.nntp file), innd will examine it and distribute to your
  352. listed feeds based on the above-described selection criteria.
  353.  
  354. Another important thing to do is to make sure your articles get
  355. expired.  This is done from the "news.daily" script.  The "expire.ctl"
  356. file describes how long you want each article to last.  Here are some
  357. sample lines from my expire.ctl:
  358.  
  359. /remember/:14
  360.  
  361. This line tells expire to keep history entries for articles 14 days
  362. after they have been deleted.
  363.  
  364. *:A:1:7:21
  365.  
  366. This is the default line.  This says that by default, an article is
  367. kept a minimum of one day, the default expiration time is 7 days (this
  368. applies if there is no "Expires" header), and the very maximum that the
  369. article is kept is 21 days.
  370.  
  371. psu.*:A:1:14:28
  372.  
  373. This line applies to groups only in Penn State.  By default, those
  374. articles will last 14 days, 28 days at the most.
  375.  
  376. Note that lines in expire.ctl should have the most general entries
  377. first, with the most specific entries last.
  378.  
  379. Lastly, where do newsreaders fit in?  When a newsreader connects to the
  380. innd process, it sees that this is not a feeder (the hosts.nntp file
  381. lists only sitest that feed YOU) so it forks a nnrpd process and hands
  382. the connection to it.  This way innd can concentrate on newsfeeds.
  383. Some newsreaders don't open a connection, but instead read the articles
  384. out of "/usr/spool/news" (and gets meta data from "/usr/lib/news").
  385. INN doesn't need to do anything about those readers except to make
  386. sure the right data is where they expect it.
  387.  
  388.  
  389. ------------------------------
  390.  
  391. Subject:  What should I monitor as I debug INN problems?
  392.  
  393. 1.  run "tail -f /var/adm/messages" to see if any syslog messages are
  394. being generated.
  395.  
  396. 2.  run "tail -f /var/log/news/news.err" to see if any fatal errors
  397. happen. 
  398.  
  399. 3.  Check for incoming email constantly (especially when trying to post
  400. from "nn").
  401.  
  402.  
  403. ------------------------------
  404.  
  405. Subject:  My innd won't start!
  406.  
  407. Keep a "tail -f /var/adm/messages" running.  INN reports most errors
  408. via syslog.  The syslog messages usually explain what is wrong.
  409. Elsewhere in this document are details about some of the less obvious
  410. syslog messages.
  411.  
  412. Chances are, INN is starting, finding a misconfigured "ME" line in the
  413. newsfeeds file, and exiting.  You might want to read the section on
  414. configuring your "newsfeeds" file first.
  415.  
  416. Rich Salz says a common reason is that you ran makehistory but didn't
  417. rename the DBZ files.  "makehistory" generates history.n.dir
  418. and history.n.pag.  They must be renamed:
  419.     mv history.n.dir history.dir
  420.     mv history.n.pag history.pag
  421. (In the future, you could run "makehistory -f history", which is a
  422. little more risky... so read the man page before you use it.  Until
  423. 1.5, "makehistory"'s man page was part of "news-recovery".)
  424.  
  425. Izar Tarandach <izar@cs.huji.ac.il> suggests that another common
  426. mistake is that innd wasn't being started by the correct uid.  innd
  427. (and therefore rc.news) must be started from "root" (not "news").  It
  428. immediately turns itself in user "news" once certain tasks are
  429. completed.
  430.  
  431. If you use a suid root inndstart, you can run it as any user.
  432.  
  433.  
  434. ------------------------------
  435.  
  436. Subject:  Connecting to a TCP/IP server.
  437.  
  438. You know that "telnet"'ing to a machine lets you log into it.  You are
  439. actually connecting on the "telnet" port (port 23).  Many TCP/IP
  440. services allow you to "telnet" into their port and talk directly to
  441. them.  Try "telnet nntphost 21".  This means log into port #21 (the
  442. "ftp" port) instead of the usual remote login port.
  443.  
  444. Once you are in, you'll get no prompt.  Type "help" and press RETURN.
  445. You should get a list of commands.  If you know what the commands are,
  446. you can talk to this server.  Type "quit" and press RETURN to get out.
  447.  
  448. After every command you should get some kind of status message.  Each
  449. line will begin with a number.  Each message has a unique number.
  450. Errors are defined as anything that starts with a number >= 400.
  451. Positive (non-error) messages are <400.
  452.  
  453. SMTP (mail) and NNTP (netnews) work the same way.  Telnet into their
  454. port and issue commands and data.  "quit" always gets you out.
  455.  
  456. We'll use this to debug INN configurations by "telnet"'ing into the
  457. innd server and seeing the raw error messages it gives us.
  458.  
  459. Try "telnet"'ing into the NNTP port (#119) of a working NNTP server to
  460. see what it's like.
  461.  
  462.  
  463. ------------------------------
  464.  
  465. Subject:  Make sure that "feeders" can connect.
  466.  
  467. "feeders" are listed in hosts.nntp.  "readers" are listed in
  468. nnrp.access.  This section deals with "feeders" and hosts.nntp.
  469.  
  470. When a machine connects to the NNTP port of nntphost, it connects to
  471. the innd process.  innd knows the internet address of the machine that
  472. is making this connection, and sees if it matches the internet
  473. addresses many of the machines listed in the hosts.nntp file.
  474.  
  475. If the machine is not listed in hosts.nntp, it is assumed that this
  476. machine is not a "feeder" and forks off a nnrpd to handle this
  477. connection as a "reader".  If you didn't know that, you didn't read
  478. enough of the INN installation documentation.  Go back and read it
  479. now.
  480.  
  481. Read the man page hosts.nntp to get a complete understanding of what's
  482. going on.  nnrpd uses its own authentication scheme, which is
  483. described in the next section.
  484.  
  485. Since I know you didn't read that man page, I'll give you one more
  486. chance to read it now.
  487.  
  488. Let's configure hosts.nntp.  Just enter the names of all the machines
  489. that feed you:
  490.  
  491. feeder1.do.main:
  492. feeder2.do.main:
  493.  
  494. I don't use passwords yet.  If you do, add them after the ":".
  495.  
  496. Now let's test to see if the feeder can connect properly.
  497.  
  498. Log into to the feeder and "telnet nntphost 119".
  499.  
  500. If you can't log into a feeder, configure your own machine as a feeder
  501. (i.e. feeder to itself) for testing purposes.  Once you can see that
  502. INN is treating that machine as a feeder you can replace the machine's
  503. name with the name of a real feed.
  504.  
  505. If you are given an error message and booted out, check the error
  506. message to see what's wrong.  Maybe the machine is running maintenance
  507. at the time and you have to try again later.  Maybe the machine doesn't
  508. recognize you at all and you have to edit "hosts.nntp" (and don't
  509. forget the "ctlinnd reload hosts.nntp" command!).
  510.  
  511. Run "inncheck" to tell you if you have made any obvious mistakes.
  512.  
  513. If your "history" file or other files have the wrong ownership or
  514. protections INN will mention the offending file in the error message.
  515. Another common mistake is that people try to use wildcards in
  516. hosts.nntp (which is not supported).  Remember, there are very few
  517. machines that you consider to be "feeders", so you don't want to use a
  518. wildcard.
  519.  
  520. To test a "feeder":  If "feeder1" can send an "ihave" command and get a
  521. "335" as a response, you know that "nntphost" is permitting "feeder1"
  522. to transfer news as a "feeder".  "ihave" requires an operand.  I
  523. usually type "ihave <1@test>" and press RETURN.  "<1@test>" is a
  524. Message-ID that I know doesn't exist.  If I get "500 What?" I know that
  525. innd assumed that I'm a "reader" (so I have to edit my "hosts.nntp"
  526. file and add this client).  If I get "335" and then a blank prompt,
  527. then INN is expecting to be fed an article.  I usually just "^]"
  528. (control-]) and "quit" out; I know that it was willing to accept the
  529. article.  If I get some other error message, it usually gives me enough
  530. information to debug the problem.
  531.  
  532.  
  533. ------------------------------
  534.  
  535. Subject:  Make sure that "readers" can connect.
  536.  
  537. As I wrote before, if a connection comes from a machine that isn't
  538. listed in the hosts.nntp file, it is assumed to be a "reader".  A
  539. "feeder" can also issue the "mode reader" command to become a
  540. "reader".  If you have "telnet"'ed in as a "feeder", try issuing this
  541. command.
  542.  
  543. Note: If a site is going to feed *and* read, you'll have to link
  544. readers with innd's client library. The reason for this is that the
  545. clients must tell innd that they want to read using the "mode reader"
  546. command.  The library does that automagically.  It is rare that you
  547. have a machine that is a reader and a feeder (since people will want to
  548. read on their local machine, not yours.)  News readers are now
  549. being packaged as "INN ready" so this will be less and less of a
  550. problem.
  551.  
  552. Once the connection has been handed off to nnrpd, nnrpd checks to make
  553. sure you are authorized.  It does that by reading the nnrp.access
  554. file.
  555.  
  556. There is a problem with what you enter in that file.  Namely, I might
  557. call the client machine "client", but that doesn't matter.  What
  558. matters is what "nntphost" thinks "client" is called.  Maybe "nntphost"
  559. thinks its name is "client.do.main" or even "137.202.177.3".  It
  560. doesn't matter what *you* call "client", permissions in the nnrp.access
  561. file have to be specified based on what "nntphost" calls "client".
  562. Technically, nnrpd uses gethostbyaddr() to reverse-lookup the name.
  563. gethostbyaddr() uses DNS or, if you are on a brain-dead Sun running
  564. Sun's NIS/DNS hack, it uses NIS, or DNS, or whatever the hell Sun was
  565. thinking when they created that cruft.
  566.  
  567. To find out what "nntphost" thinks your machine is called, do the
  568. following:  Telnet from "client" to "nntphost" and execute the "finger"
  569. command (just "finger" alone on the command line).  The last column is
  570. what "nntphost" thinks your machine is called.
  571.  
  572. If you don't have an account on both machines things are more
  573. difficult, consult your NIS or DNS expert to tell you what the answer
  574. would be.
  575.  
  576. There is one exception to this technique.  If you are using SunOS and
  577. braindead NIS you get just the machine name (like "milk") instead of
  578. the FQDN (like "milk.warren.mentorg.com") then you must tack on a
  579. period then the domain of the machine.
  580.  
  581. So, with this knowledge (what your nntphost think's client's name is)
  582. and a copy of the man page, edit nnrp.access and add "nntphost"'s name
  583. for "client" to the file.  Unlike hosts.nntp, nnrp.access can have
  584. wildcards (for example, "*.sjc.mentorg.com").  You'll want to include
  585. wildcards for all the domains that should be allowed to read/post.
  586.  
  587. Here are some decent examples from my nnrp.access file:
  588.  
  589. -------------------------------------- Tom's nnrp.access file START
  590. ## Default is no access, no way to authentication, and no groups.
  591. *:: -no- : -no- :!*
  592. *.mentorg.com:Read:::*
  593. *.mentor.com:Read:::*
  594. *.warren.mentorg.com:Read Post:::*
  595. -------------------------------------- Tom's nnrp.access file END
  596.  
  597. The second field of "nnrp.access" is case sensitive.  "read post" does
  598. not mean the same as "Read Post".  If you know this already it's
  599. because you read the man page.
  600.  
  601. Note:  nnrpd will append the domain to a name that is not a FQDN.
  602. There is no need to try to find a wildcard that will match non-FQDN
  603. names (i.e. machines in your local NIS cluster).  Previously this FAQ
  604. had reported that "*[^.]*" would match these short names but that was
  605. wrong (the wildcard matches everything, oi!).  nnrpd turns non-FQDN's
  606. into FQDNs.
  607.  
  608. After you change "nnrp.access" you don't have do "ctlinnd reload" since
  609. the file is read by each nnrpd as they start up.
  610.  
  611. Now "nntphost" should be letting "client" read.  Let's test this out:
  612.  
  613. Log into to the reader and "telnet nntphost 119".
  614.  
  615. To test a "reader":  Give the "mode reader" command and see how it
  616. it goes.  If it doesn't give an error, then nnrp.access is letting you
  617. through.  To read an article (or just get the header) type "head
  618. <2@test>" and press RETURN.  Again, "<2@test>" is a message-id that I
  619. know doesn't exist.  If you are allowed to read at all, it will tell
  620. you that it can't find that article.  You should try the command with an
  621. message-id that you know exists and make sure you see the article's
  622. header.
  623.  
  624. If reading works you can skip to the next section.  The rest of this
  625. section helps you debug reading problems.
  626.  
  627. If "mode reader" gives an error (and rudely disconnects you) then you
  628. have a typo in nnrp.access OR you didn't issue the "ctlinnd reload"
  629. command correctly (or at all) OR nntphost thinks that "client" is
  630. called yet something else OR innd can't exec nnrpd for one reason or
  631. another -- see the syslog output or the innd.err log file.  Check all
  632. of those things then go to the beginning of this section and start
  633. over.
  634.  
  635. Note: Some telnet implementations are Real Stupid and disconnect you
  636. before showing the error message.
  637.  
  638. You can also run nnrpd by hand if you have
  639.     stdin:Read Post:::*
  640. in your nnrp.access file.  Just run nnrpd and type interactively.  This
  641. is useful for making sure it's compiled right.
  642.  
  643.  
  644. ------------------------------
  645.  
  646. Subject:  Make sure that clients can post.
  647.  
  648. The "inews" command (usually in /usr/local/bin) takes a post from a
  649. user, adds any missing headers, appends the first 4 lines of
  650. ~/.signature (if it exists), and possibly replaces any headers that are
  651. obviously forged.  "inews" will also reject a message if the message is
  652. seriously botched.  "inews -h" expects a post on stdin beginning with
  653. headers, then a blank line, then the body.  "inews -h -D" doesn't post
  654. the message, but outputs what it would have posted.  The minimum
  655. headers one can feed is "Newsgroups:" (which is plural) and "Subject:"
  656. (which is singular).
  657.  
  658. By the way, a header looks like "Header-Name: data".  I'm trying to
  659. point out after the header name there is exactly one colon then exactly
  660. one space.  The space is a space, not a tab.  Also, the list of
  661. newsgroups on the "Newsgroups:" line is a comma separated list, with no
  662. spaces.  There are no spaces before the colon.  If there is nothing
  663. after the colon or if there is only whitespace after the colon then
  664. that header will be removed by "inews".  Sites that don't remove such
  665. "empty" headers have broken software.  Get it?  Got it?  Good.
  666.  
  667. Here's the test message I constantly use:
  668. ------------------------ cut here 8<
  669. inews -h -D
  670. Newsgroups: foo.test
  671. Subject: test of inn posting
  672.  
  673. this is a test
  674. ------------------------ cut here 8<
  675.  
  676. Exciting huh?
  677.  
  678. You might also use the 'feedone' program in the frontends directory.
  679. Do "cd $inn/frontends ; make feedone" to get it built.  To run it, do
  680.  
  681.         feedone -t -r /tmp/inews.input
  682.  
  683. This will (-t) trace all I/O with the server and (-r) use a random
  684. message-id each time.  If you want to test posting from a newsreading
  685. host (i.e., one that connects to nnrpd and uses the POST command) use
  686. the -p flag.
  687.  
  688. If inews was able to get to the /usr/lib/news/inn.conf file (for
  689. defaults) you should get a nice post on your screen.  If you don't,
  690. here are my suggestions:
  691.  
  692. 1 -- You have an old inews from C news or B news laying around
  693. 2 -- inews will give you an error message saying what's wrong.
  694.  
  695. You might want to look around the usual places to make sure that there
  696. are no old versions of "relaynews" or "inews".  People trying to use
  697. the "inews" from C news will get a message about "can't open
  698. redirection" or similar.  Make sure they are running the programs
  699. included with INN.  There is something called "mini-inews" which should
  700. just take a post and send it to the nntp server.  Delete that and
  701. replace it with INN's inews.  INN's inews is mini-inews and regular
  702. inews, it is the ying and then yang of inewses.  It is the one true
  703. inews.  It is the one inews to end all inewses and all others are false
  704. idols.
  705.  
  706. Note:  False idol worshipper and heathen David Myers <dem@meaddata.com>
  707. reports that mini-inews works fine.  He stays with mini-inews...
  708. "because INN inews needs to access not only inn.conf, but moderators,
  709. too.  Installing and maintaining these files in a ~1000 client,
  710. multiple administrative domain setup like ours is too much of a pain.
  711. Most (all?) of the work done by INN inews is done by in.nnrpd during
  712. posting, anyway."
  713.  
  714. Kenji Rikitake <kenji@rcac.tdi.co.jp> reports:
  715. "Keep in mind that INN inews refers to many environment variables.
  716. Beware of _inherited_ variables especially when you do su to maintain
  717. your news server.
  718. I got trapped and wasted a day with NNTPSERVER.  I tried to post to a
  719. local newsgroup, and inews kept refusing it and sending me 'no such
  720. newsgroups...' error message.  I finally found out that inews was
  721. looking up a wrong server, _implicitly_ specified by
  722. 'setenv NNTPSERVER ...' in my .login script.  It took a day to find
  723. such a subtle misconfiguration, after a whole recompilation of entire
  724. INN kit, active and history rebuilding, and all possible configuration
  725. checking.  *sigh*"
  726.  
  727. INN's inews sometimes prints the error: "Can't get list of newsgroups,
  728. No such file or directory.".  inews called CAlistactive() to get a
  729. local copy of the active file.  If it can't reach the active file you
  730. get this error.  Look at your PATH_TEMPACTIVE and see if it makes
  731. sense; i.e., if it is a valid /tmp directory.
  732.  
  733. "inews -h" sometimes reports:
  734.     Can't send article to the server:
  735.     441 480 Transfer permission denied
  736. This means that you set HAVE_UNIX_DOMAIN to DONT and you don't have
  737. your news server in its own hosts.nntp file.  (nnrpd gets a POST,
  738. connects to innd over a TCP socket and sends an IHAVE.) (thanks to Chris
  739. Jackson <cjj@sun.com> for pointing this out).  Add your news server's
  740. name to hosts.nntp and do "ctlinnd reload hosts.nntp".
  741. (for the reason why, read "Warnings to people that must set
  742. HAVE_UNIX_DOMAIN to DONT")
  743.  
  744. If it still doesn't work, look through your syslog to see the name
  745. of the host that innd got, and why it handed off to nnrpd.  Perhaps
  746. there is a DNS/NIS/hosts-file mismatch.  (suggested by Rich Salz)
  747.  
  748. Other problems are usually the result of not being able to find the
  749. "inn.conf" file (copy it to the client or make it available via NFS) or
  750. you are using Sun's brain-dead NIS/DNS stuff which doesn't do reverse
  751. name lookups well.  If inews tells you that it can't generate a
  752. Message-ID, this is because it can't figure out your domain (which is
  753. used in making the message-id string).  Force it to know your domain by
  754. adding a "domain:" line in "inn.conf".  Solaris 2.x users will get a
  755. "can't generate message-id" error if they didn't follow the advice
  756. about getfqdn.c mentioned in another part of this FAQ.
  757.  
  758. Once you get "inews -h -D" working, do the same test without the "-D" option
  759. and let it actually post the message.  If it can't post, it will tell
  760. you why.  If the answer isn't clear enough, "telnet nntphost 119", give
  761. the "mode reader" command, then the "post" command.  Enter lines of
  762. text like you would to "inews -h" and then type "." on a line by itself
  763. (and press RETURN).
  764.  
  765. If posting via "telnet nntphost 119" DOES work and posting via "inews -h"
  766. DOES NOT work, you know that (1) "inews" is compiled wrong, or more likely,
  767. (2) you aren't using INN's inews.  Either way, if this is happening
  768. you know you have narrowed your problems down to the inews program.
  769.  
  770. By the way, posting to misc.test is pretty useless considering that the
  771. entire world doesn't need to see your message.  Post to a local
  772. newsgroup or even a state-wide newsgroup like "nj.test" (assuming you
  773. are in New Jersey).  There are lots of people that reply to every test
  774. message they see, so expect to get tons of stupid email.  (though, if
  775. you don't get any email consider yourself lucky).  Also, there is no
  776. newsgroup called "news.test" so don't post there.  Many do, many fail.
  777. By the way, if you are one of those people that reply to every test
  778. message they see, get a real hobby.
  779.  
  780. Do *NOT* post your test message to a non-test newsgroup.  You will get
  781. many angry replies from all over the world.
  782.  
  783. Look at the posted message in the news spool (if you post a message to
  784. nj.test, "cd /var/spool/news/nj/test" and cat the highest numbered file
  785. you see).  If your site name is listed multiple times in the "Path:"
  786. header, put your server's name on the "pathhost:" line of "inn.conf"
  787. and recompile INN with "INEWS_PATH" set to "DONT".  (I don't know why
  788. Rich likes that as the default!)
  789.  
  790. REMEMBER:  inn.conf is read into innd only once.  After it is changed,
  791. the innd daemon must be shutdown and restarted.  (use "ctlinnd shutdown x"
  792. and then run rc.news as root).
  793.  
  794. If "inews -h" posts a message, smile because most of the battle is over.
  795.  
  796.  
  797. ------------------------------
  798.  
  799. Subject:  "client" doesn't have the software needed to post.
  800.  
  801. If the client doesn't have "inews" at all, copy it from the server (if
  802. they are compatible machines) or check the INN installation manual to
  803. find out how to compile just the client programs for a machine.  There
  804. is a special gimick included with INN to compile inews for the various
  805. other OS's and versions of Unix without having to compile the entire
  806. INN package.
  807.  
  808. Since nnpost, Pnews, postnews, and all other news posting software
  809. shouldn't do anything but ask for header information, let you add a
  810. body, and then pipe the whole thing to "inews -h", you can be pretty
  811. certain that if "inews -h" works, your news posting programs will
  812. work.  Think again!  Post from each of them and make sure they all get
  813. posted.  You might find that they access a copy of "inews" that was
  814. part of C news, mini-inews, or heavens knows what.
  815.  
  816. I highly recommend that people use "find" or "gnufind" to seek out and
  817. replace all old versions of "inews" with symbolic links to the one
  818. "official".
  819.  
  820. Something like:
  821.  
  822. gnufind / /usr /usr/local /usr/lib -xdev -follow -name inews\* -print
  823.  
  824. Then, for every file found, do the following:
  825.  
  826. mv inews inews.cnews
  827. ln -s /usr/local/bin/inews inews
  828.  
  829. Now you only have to update /usr/local/bin/inews, rather than
  830. chasing may copies.
  831.  
  832. "nn" and "nnpost" create a file called "~/.nn/params" right before you
  833. post with tons of useful information.  While posting you can shell out
  834. of the editor and view the file.  The file is deleted after the message
  835. is posted.  I had to view this file while shelled out of my editor to
  836. find which "inews" was being used by "nnpost".
  837.  
  838. It's also a good idea to check your mail now and then while you are
  839. doing this.  Some newsreaders (like "nn" notify you of a posting
  840. problem via mail.
  841.  
  842. On non-INN systems, "inews" returns pretty quickly.  Actually they fork
  843. a process to do the actual posting in the background.  When those
  844. "inews" return, you don't know if the post was successful or not.
  845. These "inews"'s have a "-W" option which turns off this forking feature
  846. (i.e. Wait for the post to complete).
  847.  
  848. INN's "inews" never forks because the wait is never that long.  When
  849. "inews" returns you know if the post was successful or not.  INN's
  850. "inews" accepts the "-W" option for compatibility.
  851.  
  852. This may seem obvious, but when posting a test message, consider
  853. including the machine you are posting from and the program you are
  854. using.  Even though you may check to see if the message got posted
  855. after every test, this will help you later when you go back to see what
  856. you have done.
  857.  
  858.  
  859. ------------------------------
  860.  
  861. Subject:  Introduction to the "newsfeeds" file
  862.  
  863. Outgoing news is controlled by the "newsfeeds" file.  The INN 1.2 man
  864. page for this file is a bit complex.  The man page in 1.3 (and beyond)
  865. gives better examples.  Here's a "cookbook" of examples that should
  866. cover most of your needs.  Debugging tips are also included.
  867.  
  868. Always remember that newsfeeds uses "wildmat" matches, not the
  869. semi-regular expressions that C news uses.  This means that if you want
  870. to get comp.foo and the subgroups under it (comp.foo.bar, comp.foo.baz,
  871. etc.) you have to use a statement like:
  872.  
  873. comp.foo,comp.foo.*
  874.  
  875. OR
  876.  
  877. comp.foo*
  878.  
  879. BUT NOT
  880.  
  881. comp.foo.*
  882.  
  883. However, "comp.foo*" will match "comp.foobar", as well as
  884. "comp.foo.bang".
  885.  
  886.  
  887. ------------------------------
  888.  
  889. Subject:  The ME line in the newsfeeds file.
  890.  
  891. The "ME" entry is a bit confusing.  Be careful when you
  892. read the man page.
  893.  
  894. Here is the "ME" line that I use in my "newsfeeds" file.  I find
  895. it works quite well, but you might want to remove the distributions
  896. that you don't need (i.e. New Jersey).  Since my site has clients
  897. reading from all over the world I try to have every distribution I
  898. can find.  However, I hear of a new distribution almost daily so this
  899. list is always changing.
  900.  
  901. ME:!*/\
  902. news,gnu,comp,biz,alt,rec,misc,sci,soc,talk,inet,world,worldwide,all,\
  903. aus,su,uk,york,eunet,na,can,qc,tor,us,usa,mn,oh,chi,ca,ba,tx,pnw,il,ne,\
  904. ny,nyc,phl,bl,nj,warren::
  905.  
  906. If you want to blindly accept all distributions, try this:
  907.  
  908. ME:!*::
  909.  
  910.  
  911. ------------------------------
  912.  
  913. Subject:  How does the "ME" line interact with the other lines?
  914.  
  915. > I'm still a little confused about the ME line's second field.
  916.  
  917. The man page as of INN 1.3 is much more clear on this.  Basically, the
  918. second field of the "ME" line specifies the default for the rest of the
  919. feeds.  Otherwise, it isn't used.  The "active" file declares which
  920. newsgroups you accept and don't accept.
  921.  
  922. Here are some examples:
  923.  
  924. ME:!*:::
  925. foo:!junk:...        --send no newsgroups
  926.  
  927. ME:*:::
  928. foo:!junk:...        --send all newsgroups except junk
  929.  
  930. ME:!*:::
  931. foo:*,!junk:...      --send all newsgroups except junk
  932.  
  933. By the way, generally you do not want to send "junk" or "control*" to
  934. your neighbors.
  935.  
  936.  
  937. ------------------------------
  938.  
  939. Subject:  Cookbook example of an outgoing NNTP feed:
  940.  
  941. This example involves a machine named oddball.mentorg.com, that has an
  942. alias of oddball.sjc.mentorg.com, which should receive all posts (but
  943. control & junk should never be passed on) and not certain
  944. distributions.  Add the following line to newsfeeds:
  945.  
  946. oddball.mentorg.com/oddball.sjc.mentorg.com:*,!control*,!junk/!local,!warren:Tf,Wnm:
  947.  
  948. Have the user "news" run the following via cron:
  949.  
  950. 3,23,43 * * * *  /usr/lib/news/bin/nntpsend >/dev/null 2>&1
  951.  
  952. (this only needs to be added once.  nntpsend refers to a file
  953. called nntpsend.ctl to find out what to do).
  954.  
  955. Add the following to nntpsend.ctl:
  956.  
  957. oddball.mentorg.com:oddball.mentorg.com::
  958.  
  959. Done!
  960.  
  961.  
  962. ------------------------------
  963.  
  964. Subject:  Cookbook example of an outgoing UUCP feed:
  965.  
  966. Example:  A site named "plts" that can not get the "clari" newsgroups
  967. or distribution "warren".
  968.  
  969. Add the following to the newsfeeds file:
  970.  
  971. plts:*,!clari.*,!junk*,!control*/!warren:Tf,Wnb:
  972.  
  973. Add the following to the cron tab (as user "news"):
  974.  
  975. 0 0-5,16-23 * * 1-5       /usr/lib/news/bin/sendbatch -c plts >/dev/null 2>&1
  976.  
  977. NOTE: I know that "plts" is unique and won't conflict with
  978. some other site named "plts" because it is registered
  979. in the UUCP Maps.
  980.  
  981.  
  982. ------------------------------
  983.  
  984. Subject:  Cookbook example of an outgoing UUCP-over-TCP feed:
  985.  
  986. jerry@strobe.ATC.Olivetti.Com (Jerry Aguirre) writes:
  987.  
  988. People ask about this like it was something exotic requiring special
  989. setup.  Kind of like: "I know how to use a wheel barrow and I know how
  990. to shovel sand but how do I shovel sand in a wheel barrow?"
  991.  
  992. Step 1:  Set up a UUCP/TCP connection between you and the destination
  993. site.  How?  Read your UUCP documentation.  If your, and the
  994. desitination's, UUCP supports UUCP/TCP then it will be documented.  If
  995. not then get a better version of UUCP.
  996.  
  997. The point is to get the UUCP/TCP link working before even thinking
  998. about sending news over it.  This is true of any news feed over UUCP;
  999. even dialup.  Try using "uucp" to copy some scratch file to the other
  1000. end.  When you have that working then you are ready for the next step.
  1001.  
  1002. The only "gotcha" here that I can think of is that the destination host
  1003. may not be accepting UUCP/TCP connections.  Before wasting your time
  1004. trying to debug do a "telnet destination.host.name uucp" and see what
  1005. happens.  If the connection is accepted and you see a "login" banner
  1006. then it is ready for you.  If not then ask the admin of that site to
  1007. enable UUCP/TCP.  This is typically done by uncommenting it in
  1008. /etc/inetd.conf and -HUPing inetd (on REAL versions of Unix).
  1009.  
  1010. Step 2.  Set up a standard compressed news feed to the UUCP name of the
  1011. destination site.  How?  Read your news documentation.  Setting up UUCP
  1012. feeds is a standard, documented, procedure.  In this FAQ you'll find it
  1013. in "Cookbook example of an outgoing UUCP feed".  Doing compression is
  1014. nothing special, it's part of the procedure you would be doing anyway.
  1015. It's either a flag or a slighly different command.  The news system has
  1016. NO knowledge that this is UUCP/TCP.  For all it knows this is a
  1017. standard dialup connection.  In fact is is possible to have the UUCP
  1018. connection fall back to dialup if the TCP connection fails.  The news
  1019. batching software just doesn't care.
  1020.  
  1021. The only variation here I can think of is to make the batch size bigger
  1022. than the default.  The 50K default was picked back in the days when
  1023. modems were 1200 BPS (or even 300).  It is no longer appropriate for
  1024. todays 9600 BPS or faster connections.  Using a bigger batch size cuts
  1025. down on dead time in the connection and lets compress do a better job.
  1026. I would go to at least 200K batches.
  1027.  
  1028. Now maybe it would be nice to have a "cookbook", step by step, set of
  1029. instructions on how to do this.  But UUCP seems to vary a bit between
  1030. different versions so what might work at one place would be useless at
  1031. another.  And setting up the news feed is going to be different between
  1032. the different versions of news (B, C, and INN).
  1033.  
  1034. I suggest that if people are having trouble setting up a UUCP/TCP
  1035. connection that they post their configuration to the net and ask how it
  1036. is done on their versions of Unix and UUCP.
  1037.  
  1038.  
  1039. ------------------------------
  1040.  
  1041. Subject:  Testing an outgoing feed (your "newsfeeds" configuration).
  1042.  
  1043. Here is a decent game-plan for testing your newsfeeds configuration:
  1044.  
  1045. Suppose your site is in New Jersey and you have a distribution called
  1046. "mentorg" which should be used by people that want to make sure that
  1047. their post will not leave their company (Mentor Graphics).  You should
  1048. do a test post to "nj.test" with no "Distribution:" header, and with
  1049. "Distribution: nj" and "Distribution: mentorg".  After posting, do a
  1050. "ctlinnd flush ''" and make sure that the /var/spool/news/out.going
  1051. files for all your sites did/didn't queue up those three messages as
  1052. appropriate.
  1053.  
  1054. IMPORTANT:  Remember to do a "ctlinnd reload newsfeeds x" command every
  1055. time you update your "newsfeeds" file!
  1056.  
  1057. Finally, for checking out changes to newsfeeds, I've found "ctlinnd
  1058. checkfile" handy.   "inncheck" will verify that most of your
  1059. configuration is sane.
  1060.  
  1061.  
  1062. ------------------------------
  1063.  
  1064. Subject:  Other cron jobs.
  1065.  
  1066. Once a night you should run the "news.daily" script which will
  1067. expire old articles, run the daily reports, etc.  It should run
  1068. as "news" and look something like this:
  1069.  
  1070. 40 23 * * *               /usr/lib/news/bin/news.daily delayrm
  1071.  
  1072. If you get news feeds via UUCP, you might want to add this cron
  1073. job (also as "news") which checks to see if any batches arrived
  1074. while innd was down and processes them.
  1075.  
  1076. 20 * * * *                /bin/rnews -U
  1077.  
  1078.  
  1079. ------------------------------
  1080.  
  1081. Subject:  Cookbook example setting up NOV ("overchan").
  1082.  
  1083. Now that you have your other feeds working, you might want to set up a
  1084. NOV feed so that your NOV database is built.  Newsreaders use the NOV
  1085. database to speed up their queries.
  1086.  
  1087. Christophe.Wolfhugel@grasp.insa-lyon.fr (Christophe Wolfhugel) (with
  1088. many modifications from Tom Limoncelli) writes:
  1089.  
  1090. Step 1:  Upgrade to INN 1.4 or higher:  Most of the bugs in 1.3 were
  1091. related with overchan.  In fact, the reason why many people used 1.3
  1092. without any problems was due to the fact that they were not using
  1093. overchan (and didn't hit on some of the bugs that appeared for SVR4
  1094. users, all of which were fixed in 1.4)
  1095.  
  1096. Step 2:  Make sure INN is working.  Get everything else working before
  1097. you try to get overchan to work.  You'll only confuse yourself.
  1098.  
  1099. Step 3:  Ponder if you have enough disk space.  NOV uses up an
  1100. additional 10%-20% of your news spool.  This is a good 100 Mb if you
  1101. have a full feed.  The real space savings come when you delete your
  1102. separate databases for trn, nn, and tin and use one unified database.
  1103. All serious newsreaders will have NOV support soon.
  1104.  
  1105. Step 4:  Edit overview.fmt (it's in the $INN/site directory, or you can
  1106. edit it where it was installed, in /usr/lib/news ) to include
  1107. "Xref:full" as the last line.  (i.e. uncomment out the last line).
  1108.  
  1109. Step 5:  Add this entry to your "newsfeeds" file.  overchan gets it's data
  1110. from a special feed.
  1111.  
  1112. # This feeds header data to NOV:
  1113. OVERVIEW!:*:Tc,WO:/usr/local/news/bin/overchan
  1114.  
  1115. Read the "newsfeeds" man to make sure you understand what you've
  1116. just done.
  1117.  
  1118. Step 6:  (optional) To create the original database:
  1119.  
  1120.     (run this as "news")
  1121.     % /usr/local/news/bin/expireover -a
  1122.     % /usr/local/news/bin/expireover -s
  1123.  
  1124. If you skip this step, access will be slow for articles that came
  1125. in before you started "overchan".  This is not a problem.  You
  1126. will get a lot of warnings in your "news.daily" output until
  1127. you have received at least one new article in each newsgroup.
  1128.  
  1129. [ Note:  "a lot of warnings" means one for every newsgroup.  This can
  1130. make your news.daily report >6000 lines.  The lines will all look
  1131. like:
  1132. overchan cant open clari/local/washington/.overview, No such file or directory
  1133. overchan cant open clari/local/sfbay/.overview, No such file or directory
  1134. overchan cant open uc/news/.overview, No such file or directory
  1135. ]
  1136.  
  1137. Step 7:  Change the invocation of news.daily:
  1138.  
  1139. In the crontab file for "news", edit the "news.daily" line to be
  1140. something like:
  1141.  
  1142.    news.daily delayrm expireover
  1143.  
  1144. (the expireover is required if you use overchan)
  1145.  
  1146. Step 8:  Inform your users that you now support "NOV, the News OverView
  1147. database" and suggest that people switch to newsreaders that use
  1148. newsreaders that are compliant with the Overview format.
  1149.  
  1150. Step 9:  You are done.
  1151.  
  1152. Step 10:  In a few weeks, drop support for mthreads, nnmaster, etc.
  1153. (assuming you've upgraded to replacements that use NOV)
  1154.  
  1155.  
  1156. ------------------------------
  1157.  
  1158. Subject:  How do I use nntplink with INN?
  1159.  
  1160. First of all, I don't personally recommend using this program.  I feel
  1161. that it is a gimick.  However, if you decide to join the INN Instant
  1162. Party, I suggest that you first run the feed using nntpsend (included
  1163. with INN) FOR AT LEAST A WEEK.  Once you are confident that functioning
  1164. properly, consider to switching to nntplink ONLY IF:
  1165.  
  1166.     1.  You have more than 3 outgoing feeds.
  1167.     2.  You have gobs and gobs of real memory.
  1168.     3.  Your OS has a superior mmap() & disk IO system (like SunOS)
  1169.  
  1170. If you decide to switch, here's a cookbook example of an newsfeeds
  1171. entry using nntplink:
  1172.  
  1173. PLEASE make sure traditional "nntpsend"-style feeds work reliably
  1174. before you switch to nntplink.
  1175.  
  1176. netcomsv.netcom.com\
  1177.     :*,!junk/!ParcPlace\
  1178.     :Tc,Wnm,S1024:/usr/local/news/bin/nntplink -i stdin netcomsv.netcom.com
  1179.  
  1180. INN 1.2 users should have an explicit S value (i.e. S1024 or S16384).
  1181. Without it innd 1.2 can choke and lose data if the receiver is jammed.
  1182. (fixed in INN 1.3).
  1183.  
  1184. The latest version of nntplink is available from
  1185. shape.mps.ohio-state.edu:/pub/nntplink/3.2pl1.tar.gz.
  1186.  
  1187. Ian Phillipps <ian@unipalm.co.uk> notes some criteria for using
  1188. nntplink rather than nnptsend:
  1189.  
  1190. > (1) If you have more than one backbone feed, you can save a lot of
  1191. > bandwidth, without risk, if you use nntplink (less duplication of
  1192. > articles over nearly-parallel paths).
  1193.  
  1194. > (2) More important, if you have a large number of feeds, nntplink
  1195. > permits them to be fed simultaneously with the same articles.  No big
  1196. > deal, until you think of the what's going on in the pagedaemon and the
  1197. > disk cache.
  1198.  
  1199. > A "ps uaxr" rarely catches nntplink in the act ("D"), despite my having
  1200. > 17 of them last time I counted. Our biggest outgoing newsfeed delivered
  1201. > 16398 articles yesterday, using a total of 380 seconds CPU on a Sun
  1202. > IPC, and no disk time :-)
  1203.  
  1204.  
  1205. ------------------------------
  1206.  
  1207. Subject:  How do I use newsgate with INN?
  1208.  
  1209. You don't.
  1210.  
  1211. The version that is available on the net doesn't work with INN
  1212. properly.  Rich Salz is preparing a version that will work with INN.
  1213. You can get a copy of it in it's current state (which works, but isn't
  1214. polished) by sending email to him at rsalz@uunet.uu.net.  You must
  1215. promise not to distribute what he sends you.
  1216.  
  1217. Installation instructions (sample /usr/lib/news/newsfeeds and
  1218. /etc/aliases entries are provided in the documentation for newsgate.
  1219.  
  1220. NB: newsgate includes mail2news and news2mail.
  1221.  
  1222.  
  1223. =====================================================================
  1224.                OTHER ERROR MESSAGES AND WHAT THEY MEAN
  1225. =====================================================================
  1226.  
  1227.  
  1228. ------------------------------
  1229.  
  1230. Subject:  ld.so: Undefined symbol: _dbzwritethrough
  1231.  
  1232. > Everything compiles correctly, but when I try to test rc.local I get:
  1233. >
  1234. > hermes# sh /usr/local/etc/rc.news
  1235. > ld.so: Undefined symbol: _dbzwritethrough
  1236. >
  1237. > What am I doing wrong?
  1238.  
  1239. This means that you are using a $INN/lib/dbz.c file that hasn't been
  1240. patched with the $INN/lib/dbz.pch patch.
  1241.  
  1242. The patching is automatic.  Running "make" should do the patch without
  1243. you even noticing.  To force the code to be re-patched (i.e. copy the
  1244. original to dbz.c and apply the patch to it), simply delete
  1245. $INN/lib/dbz.c and run the usual "make".  The Makefile does everything
  1246. for you.
  1247.  
  1248. Why might the patch fail and leave you with an unpatched dbz.c?
  1249.  
  1250. 1)  You don't have Larry Wall's (or the FSF's) "patch" program
  1251. installed.
  1252.  
  1253. 2)  Most C++ compilers based on USL's cfront come with a program called
  1254. "patch" that does something completely different than Larry Wall's (or
  1255. the FSF's) "patch" program.  If your path is configured so that this
  1256. program is found before Larry Wall's (or the FSF's) "patch" program,
  1257. you will get an unpatched dbz.c.  To fix this, delete $INN/lib/dbz.c,
  1258. change your path, and do the usual "make".  If this file is deleted the
  1259. Makefile will do everything for you.
  1260.  
  1261. See also section "5.2 The DBZ package" of the Install.ms document.
  1262.  
  1263.  
  1264. ------------------------------
  1265.  
  1266. Subject:  Why does my innd often die with the message "Can't sync history,
  1267.         interrupted system call"
  1268.  
  1269. Are you running SunOS?  See "Known Problems" section of the
  1270. installation manual."  To the best of my knowledge, nobody has seen
  1271. this problem on any other system.
  1272.  
  1273.  
  1274. ------------------------------
  1275.  
  1276. Subject:  syslog message: ME cant sendto CCreader bytes 4 No such file or directory
  1277.  
  1278. (Rich Salz replies:) It usually means that some ctlinnd command timed
  1279. out and gave up before innd could get around to replying.  Always a
  1280. problem with datagrams.  :-)  Usually not a problem in real life
  1281. however.  In INN1.3, the timeout stuff is handled better so most of
  1282. these should go away.
  1283.  
  1284. You can ignore the messages, but if it bothers you, edit news.daily and
  1285. find this line:
  1286.  
  1287.     ctlinnd -s -t`wc -l <${ACTIVE}` renumber '' 2>&1
  1288. You can rewrite it to be something like this:
  1289.     COUNT=`wc -l <${ACTIVE}`
  1290.     ctlinnd -s -t`expr ${COUNT} \* 5` renumber '' 2>&1
  1291.  
  1292.  
  1293. ------------------------------
  1294.  
  1295. Subject:  syslog: cant read Connection reset by peer
  1296.  
  1297. This means that the client vanished.  Most, or all, of these messages
  1298. are due to clients crashing or being aborted in the middle of a
  1299. dialogue with nnrpd.  For example, a PC or Mac user shuts off their
  1300. machine at 5pm.
  1301.  
  1302.  
  1303. ------------------------------
  1304.  
  1305. Subject:  inews says "bad message-id"
  1306.  
  1307. If this is a Solaris 2.x system, you didn't delete the lines mentioned
  1308. in "SVR4, Solaris 2.x, and SCO ODT 3.0" in part 1 of this FAQ.
  1309.  
  1310.  
  1311. ------------------------------
  1312.  
  1313. Subject:  Why do all these "readclose" messages show up in my syslog?
  1314.  
  1315. Chris Schmidt <cs@germany.eu.net> says:
  1316.  
  1317. The "readclose" message indicates that a remote connection to your
  1318. server was not correctly terminated with the server-command "quit".
  1319. This can have two reasons.  First the line your feed uses to connect to
  1320. you might be instable so that the connection drops every now and then.
  1321. Solution:  either ignore theses messages or find out why the line is
  1322. unstable.  The second reason for these messages could be a
  1323. missconfigured client-program at your feed.  This means the program
  1324. (e.g nntplink) does close the connection without sending the "quit"
  1325. first.  If you configure a lower number for the exit-timeout (-e) than
  1326. the close-timeout (-C) in nntplink then exactly this will happen.
  1327. Solution:  ask your feed to fix its nntplink-setup.  Let me repeat
  1328. that:  If you are using "nntplink" your -e value must be higher than
  1329. your -C value.
  1330.  
  1331.  
  1332. ------------------------------
  1333.  
  1334. Subject:  "File exists writing symlinking article file -- throttling"
  1335.  
  1336. QUESTION: I'm running INN 1.4, and the server throttles itself, saying
  1337. "File exists writing symlinking article file -- throttling".  Why?  I
  1338. have no clue, other than to note that the message is being emitted
  1339. while innd/art.c tries to link a crossposted group.
  1340.  
  1341. ANSWER:  Innd wrote the article to comp/foo/123 and then tried to
  1342. symlink it to alt/bar/128 and found that the symlink failed with errno
  1343. == EEXIST.  This generally only happens when your active file does not
  1344. match your file/directory use.  The two most common cases of that are:
  1345.  
  1346.         Trying to use MMAP on Ultrix
  1347.         Trying to use MMAP on Linux
  1348.         Some strange interaction with tind.
  1349.  
  1350. If you are using Ultrix or Linux, turn off MMAP.  You don't have a choice in
  1351. this.  The Ultrix mmap() function does something completely different
  1352. than the Sun/BSD mmap() function.  The Linux function gives you some
  1353. of the functionality that Sun/BSD mmap() function has, but not enough.
  1354. (The Linux people expect to have it fully up to spec eventually.)
  1355.  
  1356. At least one person has reported problems with ICL DRS6000 SVR4 Unix
  1357. when using MMAP.  Try turning off MMAP if you find problems.
  1358.  
  1359. It has been reported that tind writes to the active file and this
  1360. confuses innd (innd assumes it is the only process writing to the
  1361. active file).  If you are using tin, upgrade to the newest version of
  1362. tin which can read the overview (NOV) database instead of the "tin"
  1363. database.
  1364.  
  1365. To fix the active file (which may be corrupted), make sure nobody
  1366. else is writing to the active file, then do
  1367.         ctlinnd renumber ''
  1368. to get things synchronized again.
  1369.  
  1370. If your history file is corrupt, you should do:
  1371.         ctlinnd renumber ''
  1372.         makehistory -buv
  1373.         ctlinnd renumber ''
  1374. (Note: the "makehistory" will take hours to run.)
  1375.  
  1376. IF YOU IGNORE THIS PROBLEM LONG ENOUGH (by issuing the "go" command via
  1377. ctlinnd) you will eventually get a "innd: ME cant update_active
  1378. control" message in syslog.  The cause of this error is dealt with
  1379. elsewhere in this FAQ.
  1380.  
  1381.  
  1382. ------------------------------
  1383.  
  1384. Subject:  "cant fopen <newsgroup>/.thread No such file or directory"
  1385.  
  1386. Q: nnrpd logs "cant fopen <newsgroup>/.thread No such file or
  1387.    directory" hundreds of times a day although I installed trn-3 and
  1388.    maintain an overview database.  Why doesn't trn use overview files
  1389.    instead of mthreads data?
  1390.  
  1391. A: trn-3 tries to open .thread files (or use XTHREAD) first because
  1392.    $spooldir/db.init still exists.  Delete it.
  1393.  
  1394.  
  1395. ------------------------------
  1396.  
  1397. Subject:  news.daily reports: "Expire had problems removing articles"
  1398.  
  1399. This message tells you that you need to look in the file
  1400. ${MOST_LOGS}/expire.log to find out what really happened.
  1401.  
  1402. On the other hand...
  1403.  
  1404. Expire reports this if it goes through the entire expire process and
  1405. didn't find any articles to remove.  It is normal to get this error the
  1406. first few days you are running INN.  For example, if the smallest
  1407. integer that appears in the 4th field of your expire.ctl is a "4", then
  1408. you're sure to see this error the first four days you get an news.daily
  1409. report.
  1410.  
  1411. However, those first four days are when you are still learning the
  1412. system and it can be very shocking to see the error.  "Eeek!  Did I do
  1413. something wrong?"  Nope, news.daily is just telling you that you have a
  1414. virginal system.
  1415.  
  1416. Rich writes a more technical explanation:
  1417. > When using the "delayrm" keyword, news.daily calls expirerm to
  1418. > actually remove the articles that expire listed in its "-z" file.
  1419. > As distributed, expirerm calls fastrm with the "-e" flag.  This
  1420. > flag says "exit non-zero if nothing was removed."  In the normal
  1421. > case, it is an error if expire doesn't find anything to remove.
  1422.  
  1423. ...and a system being 4 days old isn't the normal case.  So you
  1424. get the error.  Ignore it.
  1425.  
  1426.  
  1427. ------------------------------
  1428.  
  1429. Subject:  syslog: ME cant nonblock 15 Operation not supported.
  1430.  
  1431. I get the following "syslog" message in /var/adm/messages:
  1432.  
  1433. Dec  2 20:40:04 venus innd: ME cant nonblock 15 Operation not supported
  1434.  
  1435. Answer: (from paulr@umbc4.umbc.edu (Paul Riddle))
  1436.  
  1437. It turns out that this is happening because /usr/spool/news on the
  1438. machine running innd is an NFS-mounted filesystem, and innd is trying
  1439. to do an FIONBIO on my feed file, which is under /usr/spool/news/out.going.
  1440.  
  1441. (tal@warren.mentorg.com adds:)
  1442. All news transports (INN, C news, B news) want the spool partition to
  1443. be local.  Newsreader can read from an NFS mounted partition without
  1444. any problems but innd should only see local partitions.  NFS has a
  1445. blatant disregard for many of the file semantics that are needed for a
  1446. good netnews implementation.  If you don't agree, please feel free to
  1447. prove the authors of B news, C news, and INN wrong.  Include source
  1448. code. :-)
  1449.  
  1450. Systems without unix-domain sockets sometimes see this error.  Just
  1451. ignore it.
  1452.  
  1453.  
  1454. ------------------------------
  1455.  
  1456. Subject:  innd: ME cant update_active control
  1457.  
  1458. What does "innd: ME cant update_active control" mean?
  1459.  
  1460. Look at your active file.  One of the fields is "99999" and has to be
  1461. incremented to "100000" but there is no space.  Shut down innd
  1462. ("ctlinnd shutdown x").  Edit your active file (see the "Safe way to
  1463. edit the "active" file?" question in INN FAQ part 3) to add more
  1464. leading zero's to all the numbers.  Restart innd.
  1465.  
  1466.  
  1467. ------------------------------
  1468.  
  1469. Subject:  syslog message: innxmit[1234]: max connect failed Error 0
  1470.  
  1471. John Line <jml4@cus.cam.ac.uk> writes:
  1472.  
  1473. If you get syslog messages like "innxmit[1234]: max connect failed
  1474. Error 0" when using nntpsend, it probably means you messed up a line in
  1475. nntpsend.ctl (specifically, missed out one of the first two fields).
  1476. While nntpsend.ctl is an obvious place to look for an nntpsend problem,
  1477. there is nothing obvious to link the error message directly to the
  1478. problem, because the text "max" is actually something invented by
  1479. nntpsend when processing the file, and doesn't exist in nntpsend.ctl.
  1480. It means the next-to-last field was null, but was the second field when
  1481. it should have been the third!
  1482.  
  1483. NB Remember to try inncheck when you have problems like this. I only
  1484. just thought of it, after finding the problem the hard way, and it
  1485. immediately reported "nntpsend.ctl:18: malformed line."
  1486.  
  1487.  
  1488. ------------------------------
  1489.  
  1490. Subject:  Can't open "/usr/local/news/shlock955", Permission denied
  1491.  
  1492. This usually means you don't have /usr/local/news owned by "news".  The
  1493. first time you run "make install" it should set the proper ownership if
  1494. you run "make install" as "root".
  1495.  
  1496.  
  1497. ------------------------------
  1498.  
  1499. Subject:  cant fopen /usr/lib/news/distributions
  1500.  
  1501. Step 1:  Can you "cat" this file?
  1502.  
  1503. Step 2:  You can't?  Does it exist?
  1504.  
  1505. Step 3:  It doesn't?  Have you considered creating it?  It should
  1506. list every distribution your users might want to know a discription
  1507. of, starting with the local one.
  1508.  
  1509. Step 4:  Here's a sample file to start from.  It's appropriate for
  1510. a New Jersey site:
  1511.  
  1512. nj    New Jersey
  1513. ny    New York
  1514. nyc    New York City
  1515. ne    North East, USA
  1516. usa    United States of America
  1517. na    North America
  1518.  
  1519.  
  1520. -- 
  1521.     Tom Limoncelli -- tal@warren.mentorg.com (work) -- tal@plts.org (play)
  1522.  
  1523.                    The internet is like a box of chocolates.
  1524.  
  1525.  
  1526.